import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileDemo5 {

    //使用list(),如何实现遍历一个目录中的所有文件，包括子目录中的文件
    //通过递归方式，罗列指定目录中所有的文件路径
    public static List<String> result=new ArrayList<>();
    public static void getAllFiles(String basePath) {
        File file=new File(basePath);
        if (file.isFile()) {
            result.add(basePath);
            return;
        }else if (file.isDirectory()) {
            //当前文件是个目录，就要进一步展开
            String[] files=file.list();
            for (String f:files) {
                getAllFiles(basePath+"/"+f);
            }
        }else {
            //当前文件不是 普通文件，也不是 目录文件，这种情况我们暂时不考虑
            //这种文件存在，如 socket文件 管道文件 设备块文件
        }

    }
    public static void main(String[] args) {
        getAllFiles(".");
        for (String s:result) {
            System.out.println(s);
        }

    }
}
